import { createParamDecorator, ExecutionContext } from '@nestjs/common';

/**
 * 获取当前登录用户装饰器
 *
 * 使用示例：
 * @Get('profile')
 * getProfile(@CurrentUser() user) {
 *   return user;
 * }
 */
export const CurrentUser = createParamDecorator(
  (data: string, ctx: ExecutionContext) => {
    const request = ctx.switchToHttp().getRequest();
    const user = request.user;

    // 如果指定了字段名，返回该字段值
    return data ? user?.[data] : user;
  },
);
